var EP=require('eventproxy');
var mock=require('./mock.js');

function getContent(cb){
    var ep=new EP();
    ep.all('get','read','query',(get,read,query)=>{
        cb(null,{get:get,read:read,query:query});
    });

    ep.fail(cb);

    //done(eventName)
    //done只有一个表示事件名称的参数时自动触发事件
    mock.get(0,ep.done('get'));

    //done(eventName,cb)
    //第2个参数为函数：
    //函数的第一个参数为返回结果
    //函数隐含了错误参数，有错误返回时依然会自动触发错误处理函数
    //手动调用监听函数
    mock.read(0,ep.done('read',(read)=>{
        ep.emit('read',read);
    }));

    //第2个参数为函数：
    //函数的第一个参数为返回结果
    //函数隐含了错误参数，有错误返回时依然会自动触发错误处理函数
    //返回结果，自动触发监听函数
    mock.query(Math.random()<0.5,ep.done('query',(read)=>{
        return read.trim();
    }));
}


getContent((err,data)=>{
    if(err)return console.log('getContent err:',err);
    console.log('getContent data:',data);
})